-- vim.uv示例: 文件更改检测
-- local w = vim.uv.new_fs_event()
local w = vim.loop.new_fs_event()
local function on_change(err, fname, status)
	-- Do work...
	vim.api.nvim_command("checktime")
	-- Debounce: stop/start.
	w:stop()
	watch_file(fname)
end
function watch_file(fname)
	local fullpath = vim.api.nvim_call_function("fnamemodify", { fname, ":p" })
	w:start(
		fullpath,
		{},
		vim.schedule_wrap(function(...)
			on_change(...)
		end)
	)
end
vim.api.nvim_command("command! -nargs=1 Watch call luaeval('watch_file(_A)', expand('<args>'))")

-- Usage:
-- :luafile % 执行
-- :Watch % 检测文件更改
-- 从另一个编辑器编辑文件
-- 观察文件在 Nvim 中重新加载
--
-- 好像没有:Watch 直接就支持这个功能
